package edu.fasta.sisinfo2.juegos;

import edu.fasta.sisinfo2.poker.Carta;

public class Par implements Juego{

	private Carta cartaUno = new Carta(0,0);
	private Carta cartaDos = new Carta(0,0);
	
	public Par(Carta unaCarta, Carta otraCarta){
		this.setCartaUno(unaCarta);
		this.setCartaDos(otraCarta);
	}
	
	
	public Juego compararJuego(EscaleraReal unaEscaleraReal){
		return unaEscaleraReal;
	}
	
	public Juego compararJuego(EscaleraColor unaEscaleraColor){
		return unaEscaleraColor;
	}
	
	public Juego compararJuego(Poker unPoker){
		return unPoker;
	}
	
	public Juego compararJuego(Full unFull){
		return unFull;
	}
	
	public Juego compararJuego(Color unColor){
		return unColor;
	}
	
	public Juego compararJuego(Escalera unaEscalera){
		return unaEscalera;
	}
	
	public Juego compararJuego(Trio unTrio){
		return unTrio;
	}
	
	public Juego compararJuego(DoblePar unDoblePar){
		return unDoblePar;
	}
	
	public Juego compararJuego(Par unPar){
		
		if( (( this.getCartaUno().getPuntaje()) == 1) && ((unPar.getCartaUno().getPuntaje()) != 1) ){
			return this;
		}else{
			if ( (( this.getCartaUno().getPuntaje()) != 1) && ((unPar.getCartaUno().getPuntaje()) == 1) ){
				return unPar;
			}else{
				if ( (( this.getCartaUno().getPuntaje()) == 1) && ((unPar.getCartaUno().getPuntaje()) == 1) ){
			//		System.out.println("Pares empatados en A"); 
					return null; //devuelve null si es empate
				}
			}
		}
				
		if( ( this.getCartaUno().getPuntaje()) > ((unPar.getCartaUno().getPuntaje())) ){
			return this;
		}else{
			if ( ( this.getCartaUno().getPuntaje()) < ((unPar.getCartaUno().getPuntaje())) ){
				return unPar;
			}
		}
		//System.out.println("Pares empatados en" + this.getCartaUno().getPuntaje());
		return null;
	}
	
	public Juego compararJuego(CartaAlta unaCartaAlta){
		return this;
	}



	public Carta getCartaUno() {
		return cartaUno;
	}


	public void setCartaUno(Carta cartaUno) {
		this.cartaUno = cartaUno;
	}


	public Carta getCartaDos() {
		return cartaDos;
	}


	public void setCartaDos(Carta cartaDos) {
		this.cartaDos = cartaDos;
	}


	public Juego compararJuego(Juego unJuego) {
		return unJuego.compararJuego(this);
	}

	public String queSos() {
		return "un Par de " + this.getCartaUno().imprimirla() + " Y " + this.getCartaDos().imprimirla() + "\n";
	}
}
